package com.itheima.mm.controller;

import com.itheima.mm.dto.CatalogDTO;
import com.itheima.mm.entity.CatalogPageQueryParams;
import com.itheima.mm.entity.PageResult;
import com.itheima.mm.entity.QueryPageBean;
import com.itheima.mm.entity.Result;
import com.itheima.mm.service.CatalogService;
import com.itheima.mm.vo.CatalogVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * @Description CatalogController
 * @Author mylee
 * @Date 2023-09-27
 */
@RestController
@Slf4j
@Api(tags = "学科目录管理")
@RequestMapping("/catalog")
public class CatalogController {
    @Resource
    private CatalogService catalogService;

    /**
     * 学科目录新增
     *
     * @return
     * @param: catalogDTO
     **/
    @PostMapping("/add.do")
    @ApiOperation("学科目录新增")
    public Result add(CatalogDTO catalogDTO) {
        log.info("学科目录新增：{}", catalogDTO);
        catalogService.add(catalogDTO);
        return Result.success(null, "添加学科目录成功！");
    }

    /**
     * 学科目录新增
     *
     * @return
     * @param: queryPageBean
     **/
    @PostMapping("findListByPage.do")
    @ApiOperation("学科目录列表展示")
    public Result<PageResult<CatalogVO>> list(@RequestBody QueryPageBean<CatalogPageQueryParams> queryPageBean) {
        log.info("学科目录列表展示：{}", queryPageBean);
        PageResult<CatalogVO> list = catalogService.findListByPage(queryPageBean);
        return Result.success(list);

    }

    /**
     * 学科目录删除
     *
     * @return
     * @param: catalogId
     **/
    @ApiOperation("学科目录删除")
    @GetMapping("/delete.do")
    public Result delete(Integer catalogId) {
        log.info("执行删除学科目录操作：{}", catalogId);
        //调用service删除
        catalogService.delete(catalogId);
        //返回数据
        return Result.success();
    }

    /**
     * 学科目录更新
     *
     * @return
     * @param: catalogDTO
     **/
    @PostMapping("/update,do")
    @ApiOperation("学科目录更新")
    public Result update(@RequestBody CatalogDTO catalogDTO) {
        log.info("学科目录更新:{}",catalogDTO);
        catalogService.update(catalogDTO);
        return Result.success();
    }

}

